package com.sa.oauth.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

@TableName("OAUTH_CLIENT")
@Schema(description = "客户端模型实体类")
@Data
public class OAuthClient {

    /**
     * 主键ID
     */
    @TableId(value = "ID", type = IdType.AUTO)
    @Schema(description = "主键ID")
    private Long id;

    /**
     * 名称
     */
    @TableField("NAME")
    @Schema(description = "名称")
    private String name;

    /**
     * 客户端ID
     */
    @TableField("CLIENT_ID")
    @Schema(description = "客户端ID")
    private String clientId;

    /**
     * 客户端密钥
     */
    @TableField("CLIENT_SECRET")
    @Schema(description = "客户端密钥")
    private String clientSecret;

    /**
     * 应用签约的所有权限
     */
    @TableField("CONTRACT_SCOPES")
    @Schema(description = "应用签约的所有权限")
    private String contractScopes;

    /**
     * 应用允许授权的所有redirect_uri
     */
    @TableField("REDIRECT_URIS")
    @Schema(description = "应用允许授权的所有redirect_uri")
    private String redirectUris;

    /**
     * 授权类型
     */
    @TableField("GRANT_TYPES")
    @Schema(description = "授权类型")
    private String grantTypes;

    /**
     * 访问令牌超时时间
     */
    @TableField("ACCESS_TOKEN_TIMEOUT")
    @Schema(description = "访问令牌超时时间")
    private Integer accessTokenTimeout;

    /**
     * 刷新令牌超时时间
     */
    @TableField("REFRESH_TOKEN_TIMEOUT")
    @Schema(description = "刷新令牌超时时间")
    private Integer refreshTokenTimeout;

    /**
     * 客户端令牌超时时间
     */
    @TableField("CLIENT_TOKEN_TIMEOUT")
    @Schema(description = "客户端令牌超时时间")
    private Integer clientTokenTimeout;

    /**
     * 最大访问令牌数量
     */
    @TableField("MAX_ACCESS_TOKEN_COUNT")
    @Schema(description = "最大访问令牌数量")
    private Integer maxAccessTokenCount;

    /**
     * 最大刷新令牌数量
     */
    @TableField("MAX_REFRESH_TOKEN_COUNT")
    @Schema(description = "最大刷新令牌数量")
    private Integer maxRefreshTokenCount;

    /**
     * 最大客户端令牌数量
     */
    @TableField("MAX_CLIENT_TOKEN_COUNT")
    @Schema(description = "最大客户端令牌数量")
    private Integer maxClientTokenCount;
}
